草庐IT

c++ - GCC、Unicode 和 __FUNCTION__

全部标签

java - 编译器在运行前将 Java 字节码转换为独立于平台的 C 代码?

我正在寻找一种编译器,用于在运行前(提前编译)将Java字节码转换为独立于平台的C代码。然后我应该能够使用标准C编译器将C代码编译为目标平台的可执行文件。我了解此方法仅适用于某些不经常修改的Java应用程序。那么有哪些Java-to-C编译器可用? 最佳答案 我可以推荐一个名为JCGO的工具这是C翻译器的Java源代码。如果你需要转换字节码,那么你可以通过一些工具(例如,JadRetro+Jad)反编译类文件并将源文件传递给JCGO。该工具一次翻译您的java程序的所有类并生成C文件(每个类一个.c和.h),这些文件可以进一步编译(

java - 选择哪种数据类型或数据结构来计算 100 的阶乘?

我想写一个程序来评估给定整数的阶乘。根据基础知识,我用java编写了以下代码:longfact(intnum){if(num==1)return1;elsereturnnum*fact(num-1);}但后来我意识到,对于许多整数输入,结果可能不是期望的结果,因此为了测试直接给输入100。我的怀疑是真的,因为我得到的结果是“0”(因为结果可能超出了long的范围)。所以,我只是很好奇,也很想知道如何让我的程序处理输入如果有任何有效的C编程语言或Java解决方案,我将不胜感激。 最佳答案 BigInteger是您的类(class)。它

以逗号结尾的Java数组初始化列表

数组初始化列表中使用的逗号,项目分隔符可能会结束C中的列表,这在TheCProgrammingLanguage2ndedbyKernighan&Ritchie中提到。例如intc[]={1,2,3,};当列表很长并且不想在添加项目时更改/检查前一行时这很方便longlongc[]={22342342344,4324234234,12312311111,};但是在Java中我可以观察到两种不同的行为:在Eclipse中,结尾的,被接受,而某些版本的maven编译器插件会提示并抛出编译错误。但是,我没有在Flanagan的Java书中找到任何关于这种奇点的内容。关于初始化项后结束逗号的官方

java - java.lang.Math.PI 等于 GCC 的 M_PI 吗?

我正在用Java和C/C++编写多个引用算法。其中一些算法使用π。我希望每个算法的两种实现都产生相同的结果,而不用不同的四舍五入。到目前为止一直有效的一种方法是使用自定义的pi常量,它在两种语言中完全相同,例如3.14159。然而,当Java和GCC库中已经定义了高精度常量时,定义pi是愚蠢的。我花了一些时间编写快速测试程序、查看每个库的文档以及阅读浮点类型。但我无法说服自己java.lang.Math.PI(或java.lang.StrictMath.PI)等于或不等于math.h中的M_PI。GCC3.4.4(cygwin)math.h包含:#defineM_PI3.1415926

Java 8 无法导入 java.util.function

我正在尝试导入包java.util.function但我不断收到以下错误:FP.java:2:error:cannotfindsymbolimportjava.util.function;^symbol:classfunctionlocation:packagejava.util我已确认我使用的是jdk1.8.0_11(使用javac-version)。 最佳答案 这不是你导入包的方式,这个importjava.util.function;应该是importjava.util.function.*;导入java.util.funct

Java Unicode 混淆

大家好,我才刚刚开始尝试学习Java,遇到了一些非常令人困惑的事情!我正在输入我正在使用的书中的示例。这是为了证明字符数据类型。代码如下:publicclassCharDemo{publicstaticvoidmain(String[]args){chara='A';charb=(char)(a+1);System.out.println(a+b);System.out.println("a+bis"+a+b);intx=75;chary=(char)x;charhalf='\u00AB';System.out.println("yis"+y+"andhalfis"+half);}}让

java - 为什么在 Java 1.8 中使用 Function<V,R> 而不是 Function<R,V>?

这个顺序看起来很奇怪,因为在常规Java中,返回类型总是首先指定。如:publicstaticdoublesum(Iterablenums){...}那么,为什么在Function和BiFunction类中选择以相反的方式指定它们呢?如:interfaceFunctioninterfaceBiFunction我不是在这里征求关于哪个更好的意见,但具体来说:a)优先选择一个顺序是否有任何技术或其他(非风格)好处?还是随意选择?b)是否有人知道任何书面解释,或来自权威来源的任何陈述原因,为什么选择一个而不是另一个?旁白:如果扩展到更高层次,这个顺序似乎更加奇怪。例如,一个假设的QuadFu

java - java中unsigned long的等价物是什么

我为我的项目编写了以下三个函数:WORDshuffling(WORDx){//WORD-4bytes-32bits//giveninput-a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15-b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15//outputrequired-a0,b0,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7-a8,b8,a9,b9,a10,b10,a11,b11,a12,b12,a13,b13,a14,b14,a1

java - 通过重构简化代码

是否有重构工具,无论是C语言还是Java语言,都可以简化这种冗余代码。我相信这称为数据传播。这本质上就是优化编译器会做的事情。publicintfoo(){inta=3;intb=4;intc=a+b;intd=c;System.out.println(c);returnc;}进入publicintfoo(){intc=7;System.out.println(c);returnc;} 最佳答案 我认为这不是一个好主意。例如下面的代码:longhours=5;longtimeInMillis=hours*60*1000;这比只是:l

java - 如何阅读非 BMP (astral) Unicode 增补字符(代码点)

G谱号(U+1D11E)不属于BasicMultilingualPlane(BMP),这意味着它需要超过16位。几乎所有Java的读取函数只返回一个char或一个int也包含only16bit.哪个函数读取完整的Unicode符号,包括SMP、SIP、TIP、SSP和PUA?更新我问过如何从输入流中读取单个Unicode符号(或代码点)。我既没有任何整数数组,也不想读取一行。可以使用Character.toCodePoint()构建代码点,但此函数需要char。另一方面,读取char是不可能的,因为read()返回一个int。到目前为止,我最好的解决方法是这个,但它仍然包含不安全的转换